<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
    var str="1a2b3c4d5e6f7UZHCUIAE";
    //split()可以将一个字符串拆分为一个数组
    var result=str.split(/[a-z]/gi);//依靠正则语法的类似格式来给split()拆分字符设置关键字符或者关键字符范围
    //这个方法即使不设定全局匹配模式，也会全部拆分
    console.log(result);

    //search()
    //可以搜索字符串中是否含有指定内容
    //如果搜到指定内容，则会返回第一次出现的索引，如果没有搜到指定内容，则返回-1
    //他可以接受一个正则表达式作为参数，然后会根据正则表达式去检索字符串
    //serach()指挥查找到第一个，即使设置全局匹配也没用
    var str1="hello abc hello aec hello afc";
    var result1=str1.search("abc");
    var result2=str1.search("hello");
    console.log(result1);
    console.log(result2);
    //搜索字符串中是否含有abc或者aec或者afc
    //var result3=str1.search(/a[bef]c/);
    var result3=str1.search(/abc|aec|afc/);//效果与上面的代码相同
    console.log(result3)

    //match()
    //可以根据正则表达式，从一个字符串中奖符合条件的内容提取出来
    //默认情况下match()方法只会找到第一个符合要求的内容，找到后就会停止检索
    //我们可以设置正则表达式为全局匹配模式，这样就会匹配到所有的内容
    //可以为一个正则表达式设置多个匹配模式，而且输入指定模式的字符顺序无，比如ig或者gi皆可以
    //match()会将匹配到的内容封装到一个数组中，即使只查询到一个结果
    var result3=str.match(/[a-z]|[0-9]/gi);//在后面加一个g，设置为全局匹配模式
    //增加一个i，就表示忽略大小写，这样就可以也输出大写字母
    console.log(result3);//这样就可以输出字符串中所有符合条件的内容
    console.log(result3[2]);//输出result3这个数组中的第三个元素，也就是2
    console.log(result3[3]);//输出result3这个数组中的第四个元素，也就是b
    //如果不设置为全局匹配模式，那么就只能输出第一个符合要求的内容
    //如果在检索条件中增加一个[0-9]值域，那么字符串中的数字也可以检索出来

    //replace()
    //可以将字符串中的指定内容替换为新的内容
    //括号中有两个参数，第一个参数是被替换的内容，第二个参数是新的内容
    var result4 =str.replace("a","###");
    console.log(result4);
    //也可以使用值域来进行替换
    var result5 =str.replace(/[0-9]/g,"数字");//通过值域来对指定对象进行替换，把0-9所有的数字全部替换成汉字“数字”
    console.log(result5);
    //也可以使用空串来对指定内容进行剔除,比如删除str字符串中的所有英文字母
    var result6 =str.replace(/[a-z]/gi,"");
    console.log(result6);
    </script>
</head>
<body>
    
</body>
</html>